home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.mactech.com 2010
/
ftp.mactech.com.tar
/
ftp.mactech.com
/
machack
/
Hacks97
/
VerticalHold.sit
/
Vertical Hold
/
source code
/
InvertPlug.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
1997-06-27
|
2KB
|
76 lines
#include <LowMem.h>
#include <A4Stuff.h>
#include <QuickDraw.h>
#include <Memory.h>
#include <Resources.h>
#include <Fonts.h>
#include <Dialogs.h>
#include <QDOffscreen.h>
#include <string.h>
#include <stdio.h>
#include <Timer.h>
int invertPos = 0;
int invertVal[100] =
{
0, 1, 3, 4, 6, 7, 9, 10, 12, 13,
14, 15, 17, 18, 19, 20, 21, 21, 22, 23,
23, 24, 24, 24, 24, 24, 24, 24, 24, 24,
23, 23, 22, 21, 21, 20, 19, 18, 17, 15,
14, 13, 12, 10, 9, 7, 6, 4, 3, 1,
0, -2, -4, -5, -7, -8,-10,-11,-13,-14,
-15,-16,-18,-19,-20,-21,-22,-22,-23,-24,
-24,-25,-25,-25,-25,-25,-25,-25,-25,-25,
-24,-24,-23,-22,-22,-21,-20,-19,-18,-16,
-15,-14,-13,-11,-10, -8, -7, -5, -4, -2
};
void initInvertPlug()
{
}
void disposeInvertPlug()
{
}
typedef struct {
TMTask task;
Ptr mainBaseAddr;
Size worldBytes;
Ptr worldBuffer;
short rowBytes;
short phase;
Rect size;
short offset;
} MyTaskRec;
void doInvertPlug(MyTaskRec* myTask)
{
EnterCodeResource ();
short height = myTask -> size.bottom - myTask -> size.top;
short phase = myTask -> phase;
short rowBytes = myTask -> rowBytes;
Ptr worldBuffer = myTask -> worldBuffer;
Ptr screenBuffer = myTask -> mainBaseAddr;
invertPos++;
if(invertPos > 99)
invertPos = 0;
int i;
for(i = 0; i < height; i++)
{
char *j;
char *k;
k = screenBuffer + (height - i) * rowBytes;
for(j = worldBuffer + i * rowBytes + rowBytes - 1; j >= worldBuffer + i * rowBytes; j--)
{
*k = *j;
k++;
}
}
ExitCodeResource ();
}